home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / wtj208.zip / ZEMPEL / SOURCE / THUNKVB / THUNKCAL.TXT < prev    next >
Text File  |  1993-05-08  |  2KB  |  70 lines

  1. Dim Numbers&(0 To 3)
  2. Dim arg1&, arg2&, answer&
  3.  
  4. Sub Form_Load ()
  5. arg1& = 10&
  6. arg2& = 5&
  7. txVal1.Text = Format$(arg1&)
  8. txVal2.Text = Format$(arg2&)
  9. End Sub
  10.  
  11. Sub operator_Click (index As Integer)
  12.         Numbers&(0) = arg1&
  13.         Numbers&(1) = arg2&
  14.         'first must get the pointer (selector/offset)
  15.         lpVBArray& = VBPTRtoLong&(Numbers&(0))
  16.         'get selector from pointer
  17.         VBSel% = lpVBArray& \ &H10000
  18.         'get handle from selector
  19.         lhvbarray& = GlobalHandle(VBSel%)
  20.         hvbArray% = VBLowWord(lhvbarray&)
  21.         'lock VB array in virtual address space
  22.         GlobalFix (hvbArray%)
  23.  
  24.         Select Case Operator(index).Caption
  25.             Case "+"
  26.                 If (opt16.Value) Then
  27.                     answer = AddTwo(Numbers&(0))
  28.                 Else answer = AddTwo32(Numbers&(0))
  29.                     answer = Numbers&(2)
  30.                 End If
  31.                 
  32.             Case "-"
  33.                 If (opt16.Value) Then
  34.                     answer = SubTwo(Numbers&(0))
  35.                 Else answer = SubTwo32(Numbers&(0))
  36.                     answer = Numbers&(2)
  37.                 End If
  38.                 
  39.             Case "X"
  40.                 If (opt16.Value) Then
  41.                     answer = MultTwo(Numbers&(0))
  42.                 Else answer = MultTwo32(Numbers&(0))
  43.                     answer = Numbers&(2)
  44.                 End If
  45.                
  46.             Case "/"
  47.                 If arg2 = 0 Then
  48.                    MsgBox "Can't divide by zero", 48, "ThunkCalc"
  49.                 Else
  50.                     If (opt16.Value) Then
  51.                         answer = DivTwo(Numbers&(0))
  52.                     Else answer = DivTwo32(Numbers&(0))
  53.                         answer = Numbers&(2)
  54.                     End If
  55.                 End If
  56.             
  57.         End Select
  58.         GlobalUnFix (hvbArray%)
  59.         labReadOut.Caption = Format$(answer)
  60. End Sub
  61.  
  62. Sub txVal1_Change ()
  63. arg1& = Val(txVal1.Text)
  64. End Sub
  65.  
  66. Sub txVal2_Change ()
  67. arg2& = Val(txVal2.Text)
  68. End Sub
  69.  
  70.